import { createRouter, createWebHashHistory } from 'vue-router'
import staticRouter from './static'
import store from '@/library/store/index'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
const baseUrl = import.meta.env.BASE_URL
console.info('Router: ', baseUrl)

//页进入进度条。。。
NProgress.configure({
    // trickleSpeed: 200, // 自动递增间隔
    minimum: 0.1 ,// 启动时的最小百分比
    easing: 'ease',// 动画方式：进度条加载方式 ，先慢后快在慢
    speed: 600, // 加载速度：递增进度条的速度
    showSpinner: false //是否显示加载ico： 右侧加载图标
    // parent:'body' // 加载的容器
})

//console.info(staticRouter)
const router = createRouter({
    history: createWebHashHistory(),
    //history: createWebHashHistory(baseUrl),
    routes: [
        ...staticRouter
    ],
    // 添加激活的类
    linkActiveClass: 'active-link',
    scrollBehavior (to, from, savedPosition) {
    // keep-alive 返回缓存页面后记录浏览位置
        if (savedPosition && to.meta.keepAlive) {
            return savedPosition
        }
        // 异步滚动操作
        return new Promise(resolve => {
            setTimeout(() => {
                resolve({ x: 0, y: 1 })
            }, 0)
        })
    }
})
// 防止路由无限循环
// let routeFlag = false;
// 路由拦截器 - 前置拦截
router.beforeEach((to, form, next) => {
    // 开启progress
    if (!NProgress.isStarted()) {
        NProgress.start()
    }
    // console.info("router.beforeEach.................");
    // 判断当前是否已有某个路由
    console.log('HasRoute=> ' + router.hasRoute('index'))
    // 获取当前所有的路由配置
    //console.log(JSON.stringify(router.getRoutes()))

    // 在每个路由前将当前页面滚动距离赋值给他们的scrollTop
    // to.meta.scrollTop = document.documentElement.scrollTop;

    // 获取路由 meta 中的title，并设置给页面标题
    if (to.meta.title !== undefined) {
        document.title = to.meta.title
    }
    console.info(form.fullPath + '>>>> ' + to.path + '.................' + to.meta.authorize)
    if (to.meta.auth === false) {
        console.info('router.beforeEach.................不需检验授权')
        next()
    } else {
        console.info('router.beforeEach.................检验授权')
        if (store.getters['auth/isAuthorize']) {
            // 已登录，
            console.info('router.beforeEach.................已授权')
            next()
        } else {
            // 未登录，跳转登录页面
            console.info('router.beforeEach.................未授权将跳转到登录页面')
            next({
                name: 'Login',
                query: { redirect: to.fullPath }
            })
        }
    }
})

// 前置解释
router.beforeResolve(() => {
    console.info('router.beforeResolve.................')
})
// 路由拦截器 - 后置拦截
router.afterEach((to, from) => {
    console.info('router.afterEach......................')
    console.info('FROM:' + from.name + ' --->>> TO:' + to.name)
    // 完成NProgress finish progress bar
    NProgress.done()
})
export default router
